﻿using PMS.Data.Entities.Messages;
using System.Collections.Generic;

namespace PMS.Services.Utils.Messages
{
    /// <summary>
    /// SMS: Short Message Sender
    /// 短消息服务发送调用
    /// </summary>
    public interface ISMSSender
    {
        /// <summary>
        /// 目前只支持阿里大鱼短信发送，查看了腾讯云短信发送接口，功能差不多
        /// 实际根据业务需要后期可增加不同短信提供商实现
        /// </summary>
        /// <param name="smsAccount"></param>
        /// <param name="phoneNumbers">
        /// 目前只提供了阿里大鱼短信SDK调用：
        /// 如为阿里短信SDK调用：
        /// SendSms接口是短信发送接口，支持在一次请求中向多个不同的手机号码发送同样内容的短信。
        /// phoneNumbers为多个手机号码,支持对多个手机号码发送短信，手机号码之间以英文逗号（,）分隔。上限为1000个手机号码。批量调用相对于单条调用及时性稍有延迟。
        /// </param>
        /// <param name="templateId"></param>
        /// <param name="templateParms"></param>
        /// <param name="msg"></param>
        /// <param name="extend"></param>
        /// <param name="ext"></param>
        /// <param name="nationCode"></param>
        /// <returns></returns>
        bool SendSMS(SMSAccount smsAccount, 
            string phoneNumbers,
            string templateId, Dictionary<string,string> templateParms,
            string msg = "", string extend = "", 
            string ext = "", string nationCode = "+86");
    }
}
